AWS CLI を使用して、AWS Config が有効化されているリージョンを確認する方法を教えてください
困っていた内容
AWS Config を利用して AWS リソースの設定をモニタリングおよび記録してます。
しかし、AWS Config のベストプラクティス である全リージョンを有効化せず運用上やむを得ず、「有効化されているリージョン」と「有効化されていないリージョン」があります。
マネジメントコンソール上で有効化するべき対象リージョンを定期的にリージョン毎、確認作業を実施していますが時間も掛かり、確認ミスがあるのではと常に懸念しています。
上記について何か良い簡単な確認方法はないでしょうか。
どう対応すればいいの?
AWS Config については以下の記載がございます。
AWS Config では、設定レコーダーを使用してリソースの設定変更を検出し、これらの変更を設定項目として取り込みます。AWS Config でリソースの設定を追跡する前に、設定レコーダーを作成する必要があります。
設定レコーダーを起動すると、AWS Config はアカウント内のすべての AWS リソースを点検します。
公式ドキュメント には、AWS Config の設定レコーダーを AWS CLI で確認する方法について以下の記載がございます。
AWS Config が記録を開始したことを確認する describe-configuration-recorder-status コマンドを使用して、アカウント内のサポートされている AWS リソースの設定の記録が AWS Config で開始されたことを確認します。
記録された設定は、指定した配信チャネルに配信されます。true フィールドの値 recording は、設定レコーダーがすべてのリソースの設定を記録し始めたことを示します。AWS Config は時刻を UTC で記録します。出力は Unix timestamp として表示されます。
以上より、配信レコーダーの設定有無を確認するため、AWS CLI で "aws configservice describe-configuration-recorder-status"
コマンドを利用すれば問題を解消できるかと思います。
実行コマンドの例
リージョンの指定については、こちらを参考に 適宜修正してコマンドを実行してください。
regionAry=(us-east-2 us-east-1 us-west-1 us-west-2 af-south-1 ap-east-1 ap-south-1 ap-northeast-3 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 ca-central-1 cn-north-1 cn-northwest-1 eu-central-1 eu-west-1 eu-west-2 eu-south-1 eu-west-3 eu-north-1 me-south-1 sa-east-1) for item in ${regionAry[@]}; do echo "=== $item ===" aws configservice describe-configuration-recorder-status --region ${item} done
AWS CLI コマンド実行結果(抜粋)
xxxxx@zzzzz:/mnt/c/Users/xxxxxxx.yyyyyyy$ regionAry=(us-east-2 us-east-1 us-west-1 us-west-2 af-south-1 ap-east-1 ap-south-1 ap-northeast-3 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 ca-central-1 cn-north-1 cn-northwest-1 eu-central-1 eu-west-1 eu-west-2 eu-south-1 eu-west-3 eu-north-1 me-south-1 sa-east-1) {rexxxxxxx@zzzzz:/mnt/c/Users/xxxxxxx.yyyyyyy$ for item in ${regionAry[@]}; do cho "=> echo "=== $item ===" aws> aws configservice describe-configuration-recorder-status --region ${item} > done === us-east-2 === { "ConfigurationRecordersStatus": [ { "name": "default", "lastStartTime": "2017-09-28T11:20:53.117000+09:00", "recording": true, "lastStatus": "SUCCESS", "lastStatusChangeTime": "2022-07-29T17:21:05.286000+09:00" } ] } === us-east-1 === { "ConfigurationRecordersStatus": [ { "name": "default", "lastStartTime": "2017-09-28T11:20:41.608000+09:00", "recording": true, "lastStatus": "SUCCESS", "lastStatusChangeTime": "2022-07-29T18:20:53.689000+09:00" } ] } === us-west-1 === { "ConfigurationRecordersStatus": [ { "name": "default", "lastStartTime": "2017-09-28T11:21:04.102000+09:00", "recording": true, "lastStatus": "SUCCESS", "lastStatusChangeTime": "2022-07-29T16:21:17.012000+09:00" } ] } === us-west-2 === { "ConfigurationRecordersStatus": [ { "name": "default", "lastStartTime": "2021-04-17T01:14:58.911000+09:00", "lastStopTime": "2021-04-30T17:41:36.630000+09:00", "recording": false, "lastStatus": "SUCCESS", "lastStatusChangeTime": "2021-04-30T16:41:37.918000+09:00" } ] }
上記実行結果を基に、各リージョンの "recording" : "true"
or "false"
を確認することで、AWS Config 有効化の判断可能なのでお試しください。
なお、「AWS CLI を利用して、AWS Config の記録される対象リソースタイプをリージョン毎で確認する方法」についてはこちら を参考にしてください。